package com.dragon.modules.yuegou.model.merchant;

import com.dragon.modules.yuegou.entity.merchant.MerchantApplyEntity;
import com.dragon.modules.yuegou.enums.merchant.MerchantApplyCheckStatus;
import com.dragon.modules.yuegou.enums.merchant.MerchantApplyMerchantType;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 商户信息申请表模型类
 * 
 * @author pbuilder generated
 * @date 2021-11-18 11:39:56
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class MerchantApply extends MerchantApplyEntity {

	/** 排序 */
	@ApiModelProperty("排序")
	protected Integer merchantSort;


	/**
	 * 构造一个空商户信息申请表模型对象
	 */
	public MerchantApply(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个商户信息申请表模型对象
	 * 
	 * @param entity 实体对象
	 */
	public MerchantApply(MerchantApplyEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商户信息申请表模型对象
	 * 
	 * @param other 其它对象
	 */
	public MerchantApply(MerchantApply other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置ID
	 * 
	 * @param id ID
	 * @return 当前对象
	 */
    public MerchantApply id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈ID
	 * 
	 * @param busdId 商圈ID
	 * @return 当前对象
	 */
    public MerchantApply busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getMerchantId() {
    	return merchantId;
    }

    /**
	 * 设置商铺ID，申请通过后插入
	 * 
	 * @param merchantId 商铺ID，申请通过后插入
	 * @return 当前对象
	 */
    public MerchantApply merchantId(String merchantId) {
    	this.merchantId = merchantId;
    	return this;
    }

	@Override
	public String getMerchantName() {
    	return merchantName;
    }

    /**
	 * 设置商户名称
	 * 
	 * @param merchantName 商户名称
	 * @return 当前对象
	 */
    public MerchantApply merchantName(String merchantName) {
    	this.merchantName = merchantName;
    	return this;
    }

	@Override
	public String getMerchantCode() {
    	return merchantCode;
    }

    /**
	 * 设置商户铺位号
	 * 
	 * @param merchantCode 商户铺位号
	 * @return 当前对象
	 */
    public MerchantApply merchantCode(String merchantCode) {
    	this.merchantCode = merchantCode;
    	return this;
    }

	@Override
	public String getMerchantLogo() {
    	return merchantLogo;
    }

    /**
	 * 设置商户logo
	 * 
	 * @param merchantLogo 商户logo
	 * @return 当前对象
	 */
    public MerchantApply merchantLogo(String merchantLogo) {
    	this.merchantLogo = merchantLogo;
    	return this;
    }

	@Override
	public String getMerchantBackgroundImg() {
    	return merchantBackgroundImg;
    }

    /**
	 * 设置商户背景图
	 * 
	 * @param merchantBackgroundImg 商户背景图
	 * @return 当前对象
	 */
    public MerchantApply merchantBackgroundImg(String merchantBackgroundImg) {
    	this.merchantBackgroundImg = merchantBackgroundImg;
    	return this;
    }

	@Override
	public String getImages() {
    	return images;
    }

    /**
	 * 设置商户图片
	 * 
	 * @param images 商户图片
	 * @return 当前对象
	 */
    public MerchantApply images(String images) {
    	this.images = images;
    	return this;
    }

	@Override
	public String getBuildingId() {
    	return buildingId;
    }

    /**
	 * 设置楼栋id
	 * 
	 * @param buildingId 楼栋id
	 * @return 当前对象
	 */
    public MerchantApply buildingId(String buildingId) {
    	this.buildingId = buildingId;
    	return this;
    }

	@Override
	public String getFloorId() {
    	return floorId;
    }

    /**
	 * 设置楼层ID
	 * 
	 * @param floorId 楼层ID
	 * @return 当前对象
	 */
    public MerchantApply floorId(String floorId) {
    	this.floorId = floorId;
    	return this;
    }

	@Override
	public MerchantApplyMerchantType getMerchantType() {
    	return merchantType;
    }

    /**
	 * 设置[枚举]商户类型：0-自营-PROPRIETARY、1-租赁-LEASE、2-联营-POOL、3-其他-OTHER
	 * 
	 * @param merchantType [枚举]商户类型：0-自营-PROPRIETARY、1-租赁-LEASE、2-联营-POOL、3-其他-OTHER
	 * @return 当前对象
	 */
    public MerchantApply merchantType(MerchantApplyMerchantType merchantType) {
    	this.merchantType = merchantType;
    	return this;
    }

	@Override
	public String getContactName() {
    	return contactName;
    }

    /**
	 * 设置联系人名称
	 * 
	 * @param contactName 联系人名称
	 * @return 当前对象
	 */
    public MerchantApply contactName(String contactName) {
    	this.contactName = contactName;
    	return this;
    }

	@Override
	public String getContactMobile() {
    	return contactMobile;
    }

    /**
	 * 设置联系人手机号
	 * 
	 * @param contactMobile 联系人手机号
	 * @return 当前对象
	 */
    public MerchantApply contactMobile(String contactMobile) {
    	this.contactMobile = contactMobile;
    	return this;
    }

	@Override
	public String getContactAddress() {
    	return contactAddress;
    }

    /**
	 * 设置联系地址
	 * 
	 * @param contactAddress 联系地址
	 * @return 当前对象
	 */
    public MerchantApply contactAddress(String contactAddress) {
    	this.contactAddress = contactAddress;
    	return this;
    }

	@Override
	public LocalTime getStartBusinessTime() {
    	return startBusinessTime;
    }

    /**
	 * 设置开始营业时间
	 * 
	 * @param startBusinessTime 开始营业时间
	 * @return 当前对象
	 */
    public MerchantApply startBusinessTime(LocalTime startBusinessTime) {
    	this.startBusinessTime = startBusinessTime;
    	return this;
    }

	@Override
	public LocalTime getEndBusinessTime() {
    	return endBusinessTime;
    }

    /**
	 * 设置结束营业时间
	 * 
	 * @param endBusinessTime 结束营业时间
	 * @return 当前对象
	 */
    public MerchantApply endBusinessTime(LocalTime endBusinessTime) {
    	this.endBusinessTime = endBusinessTime;
    	return this;
    }

	@Override
	public BigDecimal getMerchantAcreage() {
    	return merchantAcreage;
    }

    /**
	 * 设置商铺面积
	 * 
	 * @param merchantAcreage 商铺面积
	 * @return 当前对象
	 */
    public MerchantApply merchantAcreage(BigDecimal merchantAcreage) {
    	this.merchantAcreage = merchantAcreage;
    	return this;
    }

	@Override
	public String getRemarks() {
    	return remarks;
    }

    /**
	 * 设置备注
	 * 
	 * @param remarks 备注
	 * @return 当前对象
	 */
    public MerchantApply remarks(String remarks) {
    	this.remarks = remarks;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 * @return 当前对象
	 */
    public MerchantApply createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public MerchantApply createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public String getCheckBy() {
    	return checkBy;
    }

    /**
	 * 设置审核人ID
	 * 
	 * @param checkBy 审核人ID
	 * @return 当前对象
	 */
    public MerchantApply checkBy(String checkBy) {
    	this.checkBy = checkBy;
    	return this;
    }

	@Override
	public LocalDateTime getCheckTime() {
    	return checkTime;
    }

    /**
	 * 设置审核时间
	 * 
	 * @param checkTime 审核时间
	 * @return 当前对象
	 */
    public MerchantApply checkTime(LocalDateTime checkTime) {
    	this.checkTime = checkTime;
    	return this;
    }

	@Override
	public MerchantApplyCheckStatus getCheckStatus() {
    	return checkStatus;
    }

    /**
	 * 设置[枚举]审核状态：0-未审核-UNCHECK、1-审核通过-SUCCESS、2-审核不通过-FAILURE、3-暂定-TENTATIVE
	 * 
	 * @param checkStatus [枚举]审核状态：0-未审核-UNCHECK、1-审核通过-SUCCESS、2-审核不通过-FAILURE、3-暂定-TENTATIVE
	 * @return 当前对象
	 */
    public MerchantApply checkStatus(MerchantApplyCheckStatus checkStatus) {
    	this.checkStatus = checkStatus;
    	return this;
    }

	@Override
	public String getCheckOpinion() {
    	return checkOpinion;
    }

    /**
	 * 设置审核意见
	 * 
	 * @param checkOpinion 审核意见
	 * @return 当前对象
	 */
    public MerchantApply checkOpinion(String checkOpinion) {
    	this.checkOpinion = checkOpinion;
    	return this;
    }

	@Override
	public Boolean getDel() {
    	return del;
    }

    /**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del 逻辑删除，1表示已删除,0表示未删除
	 * @return 当前对象
	 */
    public MerchantApply del(Boolean del) {
    	this.del = del;
    	return this;
    }

	@Override
	public String getApplyBy() {
    	return applyBy;
    }

    /**
	 * 设置从悦商惠申请的 必填
	 * 
	 * @param applyBy 从悦商惠申请的 必填
	 * @return 当前对象
	 */
    public MerchantApply applyBy(String applyBy) {
    	this.applyBy = applyBy;
    	return this;
    }

	@Override
	public String getApplyMobile() {
    	return applyMobile;
    }

    /**
	 * 设置申请手机号 悦商惠申请必填
	 * 
	 * @param applyMobile 申请手机号 悦商惠申请必填
	 * @return 当前对象
	 */
    public MerchantApply applyMobile(String applyMobile) {
    	this.applyMobile = applyMobile;
    	return this;
    }

	@Override
	public String getEncBankNo() {
    	return encBankNo;
    }

    /**
	 * 设置银行卡号
	 * 
	 * @param encBankNo 银行卡号
	 * @return 当前对象
	 */
    public MerchantApply encBankNo(String encBankNo) {
    	this.encBankNo = encBankNo;
    	return this;
    }

	@Override
	public String getEncTrueName() {
    	return encTrueName;
    }

    /**
	 * 设置银行开户用户名
	 * 
	 * @param encTrueName 银行开户用户名
	 * @return 当前对象
	 */
    public MerchantApply encTrueName(String encTrueName) {
    	this.encTrueName = encTrueName;
    	return this;
    }

	@Override
	public String getBankCode() {
    	return bankCode;
    }

    /**
	 * 设置开户行code
	 * 
	 * @param bankCode 开户行code
	 * @return 当前对象
	 */
    public MerchantApply bankCode(String bankCode) {
    	this.bankCode = bankCode;
    	return this;
    }

	@Override
	public String getBankName() {
    	return bankName;
    }

    /**
	 * 设置银行名称
	 * 
	 * @param bankName 银行名称
	 * @return 当前对象
	 */
    public MerchantApply bankName(String bankName) {
    	this.bankName = bankName;
    	return this;
    }

    
	public String getBtypeId() {
		return btypeId;
	}

	public void setBtypeId(String btypeId) {
		this.btypeId = btypeId;
	}

	public String getBtypeSecondId() {
		return btypeSecondId;
	}

	public void setBtypeSecondId(String btypeSecondId) {
		this.btypeSecondId = btypeSecondId;
	}

	public String getLevel() {
		return level;
	}

	public void setLevel(String level) {
		this.level = level;
	}

	public Integer getMerchantSort() {
		return merchantSort;
	}

	public void setMerchantSort(Integer merchantSort) {
		this.merchantSort = merchantSort;
	}

	public String getPartnership() {
		return partnership;
	}

	public void setPartnership(String partnership) {
		this.partnership = partnership;
	}

}
